To know whether the block number is more than 200K before
returning the difficulty, a check is done, and if yes, then the bomb
logic is applied to increase the difficulty exponentially.
In order to increase the difficulty exponentially, the new block number
is calculated by adding one to the parent block number.
Dividing the new block number by 100K , and if the output obtained is
subtracted from 2, the new block number is more than 200K .
By using the calculation 2^ output of Step 12, the difficulty delta
increase exponentially is calculated.
By adding the output of the previous step to the difficulty calculated in
Step 7 , calculate the new difficulty.
The mining time difference between 10 and 19 seconds is kept by Ethereum
by following these steps. Division by 10 in Step 2 helps in creating three
ranges—
the difficulty is increased if it is the first range in which the value
falls, the difficulty is kept constant if it falls in the second range, and the
difficulty is reduced if it falls in the third range.
In case you want to change the ranges of difficulty, you can try it by
dividing it by some other number in Step 2.
The concept of uncle block
An uncle block is illustrated as follows: